\chapter{Introduction}

This document explains how the Open Motion Planning Library (OMPL) implements
the basic primitives of sampling-based motion planning, what planners are
already available in OMPL, and how to use the library to build new planners.
This primer is segmented into the following sections: An introduction to
sampling-based motion planning, a guide to setup OMPL for solving motion
planning queries using OMPL.app, a description of the motion planning
primitives in OMPL to develop your own planner, and an explanation of
some advanced OMPL topics.

At the end of this document, users should be able to use OMPL.app to solve
motion planning queries in 2D and 3D workspaces, and utilize the OMPL framework
to develop their own algorithms for state sampling, collision checking, nearest
neighbor searching, and other components of sampling-based methods to build
a new planner.


\section {Prerequisites for Using OMPL}
This primer assumes that users are familiar with C++ programming and compiling
code in a Unix environment.  Additionally, users should have basic knowledge of
sampling-based motion planning.  OMPL and OMPL.app should also be installed.
For information regarding the installation process, please see
{\tt ompl.kavrakilab.org}.

